﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using ProjControleModelos;

namespace ProjControleDAL
{
   public class FornecedoresDAL
    {
       SqlCommand cmd;
       Dados objD = null;

       //contrutor
       public FornecedoresDAL()
       {
       }

        #region Métodos
       
       //inserir
       public void inserir(Fornecedores objF)
       {
           try
           {
               cmd = new SqlCommand();
               objD = new Dados();
               cmd.CommandText = "insert into fornecedores values (@descricao,@dt_cadastro,@endereco,@cidade,@estado,@email,@telefone," +
                   "@fax,@cnpj,@inscricao,@nome_contato)";
               cmd.Parameters.Add(new SqlParameter("@descricao", SqlDbType.VarChar)).Value = objF.descricao;
               cmd.Parameters.Add(new SqlParameter("@dt_cadastro", SqlDbType.Date)).Value = objF.dt_cadastro;
               cmd.Parameters.Add(new SqlParameter("@endereco", SqlDbType.VarChar)).Value = objF.endereco;
               cmd.Parameters.Add(new SqlParameter("@cidade", SqlDbType.VarChar)).Value = objF.cidade;
               cmd.Parameters.Add(new SqlParameter("@estado", SqlDbType.VarChar)).Value = objF.estado;
               cmd.Parameters.Add(new SqlParameter("@email", SqlDbType.VarChar)).Value = objF.email;
               cmd.Parameters.Add(new SqlParameter("@telefone", SqlDbType.VarChar)).Value = objF.telefone;
               cmd.Parameters.Add(new SqlParameter("@fax", SqlDbType.VarChar)).Value = objF.fax;
               cmd.Parameters.Add(new SqlParameter("@cnpj", SqlDbType.VarChar)).Value = objF.cnpj;
               cmd.Parameters.Add(new SqlParameter("@inscricao", SqlDbType.VarChar)).Value = objF.inscricao;
               cmd.Parameters.Add(new SqlParameter("@nome_contato", SqlDbType.VarChar)).Value = objF.nome_contato;
               objF.codigo = objD.executaComandoAI(cmd, "fornecedores");
           }
           catch (Exception ex)
           {
               
               throw ex;
           }
           cmd = null;
           objD = null;
       }
       public void alterar(Fornecedores objF)
       {
           try
           {
               cmd = new SqlCommand();
               objD = new Dados();
               cmd.CommandText = "update fornecedores set descricao_fornecedor = @descricao, dt_cadastro_fornecedor = @dt_cadastro, endereco_fornecedor = @endereco," +
                   "cidade_fornecedor = @cidade,uf_fornecedor = @estado,email_fornecedor = @email,telefone_fornecedor = @telefone,fax_fornecedor = @fax, cnpj_fornecedor = @cnpj," +
                   "inscricao_fornecedor = @inscricao,contato_fornecedor = @nome_contato where cod_fornecedor = @codigo";
               cmd.Parameters.Add(new SqlParameter("@descricao", SqlDbType.VarChar)).Value = objF.descricao;
               cmd.Parameters.Add(new SqlParameter("@dt_cadastro", SqlDbType.Date)).Value = objF.dt_cadastro;
               cmd.Parameters.Add(new SqlParameter("@endereco", SqlDbType.VarChar)).Value = objF.endereco;
               cmd.Parameters.Add(new SqlParameter("@cidade", SqlDbType.VarChar)).Value = objF.cidade;
               cmd.Parameters.Add(new SqlParameter("@estado", SqlDbType.VarChar)).Value = objF.estado;
               cmd.Parameters.Add(new SqlParameter("@email", SqlDbType.VarChar)).Value = objF.email;
               cmd.Parameters.Add(new SqlParameter("@telefone", SqlDbType.VarChar)).Value = objF.telefone;
               cmd.Parameters.Add(new SqlParameter("@fax", SqlDbType.VarChar)).Value = objF.fax;
               cmd.Parameters.Add(new SqlParameter("@cnpj", SqlDbType.VarChar)).Value = objF.cnpj;
               cmd.Parameters.Add(new SqlParameter("@inscricao", SqlDbType.VarChar)).Value = objF.inscricao;
               cmd.Parameters.Add(new SqlParameter("@nome_contato", SqlDbType.VarChar)).Value = objF.nome_contato;
               cmd.Parameters.Add(new SqlParameter("@codigo", SqlDbType.Int)).Value = objF.codigo;
               objD.executaComando(cmd);
           }
           catch (Exception ex)
           {
               
               throw ex;
           }
           cmd = null;
           objD = null;
       }

       public void excluir(Fornecedores objF)
       {
           try
           {
               cmd = new SqlCommand();
               objD = new Dados();
               cmd.CommandText = "delete from fornecedores where cod_fornecedor = @codigo";
               cmd.Parameters.Add(new SqlParameter("@codigo", SqlDbType.Int)).Value = objF.codigo;
               objD.executaComando(cmd);

           }
           catch (Exception ex)
           {
               
               throw ex;
           }
           cmd = null;
           objD = null;
       }
       public DataTable localizar(String nome)
       {
           DataTable tab;
           try
           {
               cmd = new SqlCommand();
               objD = new Dados();
               cmd.CommandText = "select * from fornecedores where descricao_fornecedor like @descricao";
               cmd.Parameters.Add(new SqlParameter("@descricao", SqlDbType.VarChar)).Value = "%" + nome + "%";
               tab = objD.executaConsulta(cmd);
           }
           catch (Exception ex)
           {
               
               throw ex;
           }
           cmd = null;
           objD = null;
           return tab;
       }

       public Fornecedores localizar(int codigo)
       {
           Fornecedores objF = null;
           DataTable tab;
           try
           {
               cmd = new SqlCommand();
               objD = new Dados();
               cmd.CommandText = "select * from fornecedores where cod_fornecedor = @codigo";
               cmd.Parameters.Add(new SqlParameter("@codigo", SqlDbType.Int)).Value = codigo;
               tab = objD.executaConsulta(cmd);
               if(tab != null)
                   if (tab.Rows.Count == 1)
                   {
                       objF = new Fornecedores(codigo, tab.Rows[0]["descricao_fornecedor"].ToString(),
                           DateTime.Parse(tab.Rows[0]["dt_cadastro_fornecedor"].ToString()),
                           tab.Rows[0]["endereco_fornecedor"].ToString(),
                           tab.Rows[0]["cidade_fornecedor"].ToString(),
                           tab.Rows[0]["uf_fornecedor"].ToString(),
                           tab.Rows[0]["email_fornecedor"].ToString(),
                           tab.Rows[0]["telefone_fornecedor"].ToString(),
                           tab.Rows[0]["fax_fornecedor"].ToString(),
                           tab.Rows[0]["cnpj_fornecedor"].ToString(),
                           tab.Rows[0]["inscricao_fornecedor"].ToString(),
                           tab.Rows[0]["contato_fornecedor"].ToString());
                   }
           }
           catch (Exception ex)
           {
               
               throw ex;
           }
           cmd = null;
           objD = null;
           return objF;

       }
        #endregion
    }
}
